Memory arrangement for electronic data processing system



July 23, 1968 L, BLooM ETAL 3,394,353

MEMORY ARRANGEMENT FOR ELECTRONIC DATA PROCESSING SYSTEM Original Filed March 5. 1962 11 Sheets-Sheet l July 23, 1968 BLQQM ET AL 3,394,353

MEMORY ARRANGEMENT FOR ELECTRONIC DATA PROCESSING SYSTEM Original Filed March 5. 1962 11 Sheets-Sheet 2 HP? I "2 39 si T1 T1 FIG 2 To c PU Hip-Hop --fnPl 3s n| 2 nNveNToRs clock 36 LEON aLooM Demy .j--HIPB MoRRls com-:N

une 36 P4 SIGMUND N. PORTER '35 l-Cnos 36 --Hws se rno? ,np BY 36 ,J

i--HTPT 'j THElR ATTORNEE July 23, 1968 L.. BLooM ET AL 3,394,353

MEMORY AHRANGEMENT FOR ELECTRONIC DATA PROCESSING SYSTEM Original Filed March 5. 1962 1l Sheets-Sheet 3 E ,E FIG 2 1 2 gperaimg Cycle of Store 22 e Li i-, 1

Drivers Sense Amp.

T9 nsw an LB CoreAMemory "ip flop 1 i o fray 3 Piane of B1 Q Store 22 b1 obl B Regi/f 65 inhibit i Driver I I From A Req.

FIG.2b

1 I Xo Regd T9 [9 l D Mugneic m Iers i prom p "iP "0F To wrue i 'um Fzfmo'y GMO 77 l i T9 t Amplifiers Stom 22 Guia 38 z 110m i flip-flop To Il Drum From i Demy T 10 a--l-i-[Gnies Signals Ga1e76 Z o 60,61,

i am *10 o'1o A i 62 29u i Drum Address fi'i Drum 82a i g counm Signals i I l i min-ii fen l i Compare nqud i Unii nspl i i i SIGMUND N. PORTER LZ THEIR ATTORNEY;

July 23, 1968 L, BLQOM Er AL MEMORY ARRANGEHENT Fon ELECTRONIC DATA PROCESSING SYSTEM Original Filed March 5, 1962 11 Sheets-Sheet 4 July 23, 1968 l.. BLooM ETAL MEMORY ARRANGEMENT FOR ELECTRONIC DATA PROCESSING SYSTEM Griginal Files March 5. 1962 1l Sheets-Sheet 5 ADmUEuNUfIIJ .3.10 EQR H I 0m Se@ Se F m R m N22 lllll s g E m N m g 8:5.: mv Q w 8:-2: mw E Em :n o moo EQ2 vMHP NH d d D moon, z z z E wc BSW RU N: NH N M :o www LMS N: I. noch.:

Nr.0 Nr. no r.

nor--Bz nor--Ez .dm um .Hm m $28 NN m8 E8 2e N22 o 9 2 o 9.o new: NN 22m o 58% Neoim .F NN 2.2.5 59h. NNESvm lib, o #Jgd THEIR ATTORN S July 23, 1968 L, BLOQM ET AL MEMORY AEEANGEMENT Pon ELECTRONIC DATA PROCESSING SYSTEM Original Filed March 5, 1962 1l Sheets-Sheet G R E s T R Nm n w w MMP mm. V L D W BBW NR T mmm s m N N l dw: H n d. N f N l am. l j l zhd. Il- Tec Nl E Te: Szz 035, I .n f :Limwezmuzi y :ma U --.m -----mez. JU.- u lllllllll ltrlllfr l I c I l l l a I :f tn1|1f1or|ll||l|||fl|114 .r #m A- 1u nu v nu Lx Lv Lf .r 4l l 1 I.v\ l l'\ l1 Ts. n THNFNTN@ .f mfnm N NERLNE .v .mtm m .l uvk L. .o x N S3. QQ 2.@ ab m Eb m wm om wkn wm wn wm n D F 141| u mm). L? S mm 3 n V IIIIIIIIII Il N llllllllllllllllllllll Il 1|||||- T I t I I I v i l I l 1|||| Il mN .ituaEou .IIIIIHII IIL ||||||-Ttlll [llll llllllllll llIllllllllllllllllxvlllIJ E 2 n n m w Q T N h w l n L .2 ql Srs: t Sah.: f. ...5-2: lm 4 z: xm 2gsm m .NC N C .nu nu .Nm Nu L .m rl l l l I I l I t l l l l l ill T l l l 1 l I V 0 l I C l I l l l l l K I l I l l l I I l l l l i 1 I l I I Ergwwf Wwf.;

THEIR ATToENEfrd* July 23, 1968 L. BLOOM ET AL 3,394,353

MEMORY ARRANGEMENT FUR ELECTRONIC DATA PROCESSING SYSTEM Original Filed March 5. 1962 11 Sheets-Sheet '7 THEIR ATTOR mv. wm: wf v m www Vuillitlililzi-- .wmwmw I ----l----- ,2 www n u n f .r W LMS 1 m .Uv L Il r Iv l1. 121-52m N ra -r N5 E 2 m MQ. y E M111 .W m/ l l aNd i bmmwmmwhmmw l I 1 22335 cada:

I1 .1222221--1-2----l I.

m we.. S.

@P m M WF rl WTE: vwmmww ,2- r 5T no: .2 QE

July 23, 1968 BLOQM ET AL MEMORY ARRANGEMENT PoR ELECTRONIC DATA PROCESSING SYSTEM Original Filed March 5. 1962 11 Sheets-Sheet 8 Alteration Indicators MORRIS COHEN SIGMUND N. PORTER THEIR ATTOR EYS FIG.7

July 23, 1968 BLooM ET AI- 3,394,353

MEMORY ARRANGEMENT FOR ELECTRONIC DATA PROCESSING SYSTEM Original Filed March 1962 11 Sheets-Sheet 9 Look-Aside Operating Look-Aside Operating Cycle T Nanoseconds Cyc|e2 T Nnnoseconds VOHS o Crn Cm Cm r Nl Clock Pulsesqojl/ 05 07 nl o5 o7 #L 0 Timing o PU|S$ .1 Ln Lin Ld] P1 P2 P3 P4 P5 Ps P1 P1 P2 P3 P4 P5 Pe P1 P Tlmmg PUISQS .1Q

Ksll Equal 0 Comparison 10----l Ksi'UnequoI 0--7 Comparison '1 o KSIQ -lo- I o T1 (Read) m I Goto 56 n T1 T3 KslPS -1o Goto 52 n '1Q Analog o 1n Charqmg Pulse 1 o R10 .1Q L .I

10 iu Look-Asdo x1 Operation n; Completed 1c rt T3 P7 new n/ m s T1T3'1 INVENTORS F|G.8 LEON BLooM MORRIS COHEN SIGMUND N. PORTER THEIR ATT I 11 Sheets-Sheet l0 July 23, 1968 L, BLOQM ETAL MEMORY ARRANGEMENT FOR ELECTRONIC DATA PROCESSING SYSTEM Original Filed March 5. 1962 O o l IJ o m 2v R 4U llle 3. 2am @E966 0292 c; m E m L no 3o .C .Tmm mk NFVSQ :m 22.5 #a N MR 11111 l 3.5. w n .C 2 C E mMEP .T llllllll lili. M: o wL Emma mam 22m N N. wn.. E LC llr wie- F E was@ J m |||||||l llll o Mmm m .111A lllmf :sz N mmm 0J/ L S Ill lllll Il l a :ulu .F s Y /NN III Il o B l llllvll .Il Od' w! .|||-|||l|l|||||n!|||'|l| o ||..|||..1||1 2. omtanEou casca Il Il.. lllll Il o .wmvl..\||||| l.. 2| owtou 25B llllllllllllll 1| a wx 2| :J a 32:1 QSE; a E .E l- Nn. E EE BERE E :J F. -i lrsulla.. Mw Si.; o s, o mo o o mo l I l i l l lll oel IClEu SEQ Eu :5-lo mon-...m uo 5502 3 u u E2 euuvmcou om .26 2u u 2 o 2o u @c222-O 0:2225 956.25 254.300..- oEu Los 022-13.. 9.63352 ocomacaz b .l1\\ N 111 l|[\ I* sur v1.55 225 22u m 9.2230 9133.5 92m Eos. 9.2m 22 July 23, 1968 BLOOM EIT AL MEMORY ARRANGEMENT Fon ELECTRONIC DATA PROCESSING SYSTEM Original Filed March 5. 1962 1l Sheets-Sheet 1 1 l Il 'All ---lily E lll *III

:Urns:

0 WP 0T O of h O 2. 2 3 :in a 22m 2 :a5 Mv num Ewvh 2- :2.5.6 o 12E 222m of :otaou L32. 222x 2- otdno nava a uoohmuxnb: e. .5 23. E.r .x. n d wv me. n N Qa:

o En 22: .rx n 2- .mm 23:

ou' o Cru E E E E E .3

INVENTORS LEON BLOOM MORRIS COHEN THEIR AT TOR EYS United States Patent O "ice 3,394,353 MEMORY ARRANGEMENT FOR ELECTRONIC DATA PROCESSING SYSTEM Leon Bloom, Morris Cohen, and Sigmund N. Porter, Los Angeles, Calif., assignors to The National Cash Register Company, Dayton, Ohio, a corporation of Maryland Original application Mar. 5, 1962, Ser. No. 177,513, now Patent No. 3,231,868, dated Jan. 25, 1966. Divided and this application Sept. 13, 1965, Ser. No. 486,747

11 Claims. (Cl. S40-172.5)

ABSTRACT F THE DISCLOSURE An analog to digital circuit arrangement which provides logical decisions for controlling displacement of data in a high-speed, low-capacity memory whereby data least recently used in data processing operations is selected for displacement to provide storage space for data required for data processing operations.

This is a division of application Ser. No. 177,513, filed Mar. S, 1962, now Patent 3,231,868.

The present invention relates to memory arrangements for electronic data processing systems and Kmore particularly to memory arrangements for decreasing the average time required to provide access to information in data processing systems.

It is well known in the prior art that any data processing problem can be broken down into a sequence of simple arithmetic and logical operations or steps, each of which is carried out during a basic operating cycle by electronic components functioning at extremely high speeds. A plurality of such operations or steps can be self-sequenced by control circuitry to perform routines. Each of the routines is specified by an instruction, and a sequence of instructions is called a program. This program and all other necessary information needed to perform a problem are entered into the data processors main store. The data processor thereafter carries out the instructions automatically and at high speed.

In most of the basic operating cycles carried out by a data processor, a transfer of information or data between the main store and the processing unit occurs. New data is drawn from the main store, logically processed, and then returned, frequently in modied form, and usually to the same location, in the main store. In the prior art data processors the time required for the data to be processed by the processing units can be made extremely short, while the time required to locate and transfer information between the main store and the processing unit is, generally, time consuming. Thus, in the prior art, each basic operating cycle of a data processor, during which a step of a problem is performed, generally provides for locating and reading data out of a specified address in the main store during the first half of each basic operating cycle, performing logic on the data read out, and then writing the modied data back into the same address of the main store during the last half of the basic operating cycle. When using this opproach not only does it take time to locate the data to be read out" of the main store, but because the components used for the memory elements in the main store of the data processor are relatively slow-acting, an appreciable portion of the operating cycle is required to perform the memory accessing. On the other hand, by operating on the data, once it is accessed, in parallel mode, it is possible to perform the actual logical operations specified during an operating cycle in a relatively short time. Thus, the time required to perform the logical operations can be made to be equal to but a small por- 3,394,353 Patented July 23, 1968 tion of the time period of an operating cycle. It would be highly desirable in processing systems, therefore, to minimize the need for accessing the main store in the above described manner during an operating cycle in order to perform the logical operations specified to be performed during that step. Thus, if the data to be operated upon by the logic during an operating cycle or step could be made available without the need for accessing the main store, and of no time were consumed in writing back" data into the main store after the logic is performed, the data processor could be made to perform this sequence of Steps at logic speed," i.e., at a speed limited only by the time required to perform the logical operations of these processing steps, and thus the overall problem could be performed at a much faster rate, i.e., at a rate more nearly approaching logic speed.

`It should be noted that in many problems solved by data processors, once data is read out from a predetermined address of the main store, this data or a modified form of the data having the same address, is logically operated upon again and again, on successive operating cycles` An example of this would be a sub-routine including words of information that are used repetitively. Thus, the present invention contemplates the provision of a small capacity, fast, look-aside memory means into which data along with its address is stored after once being read from the main store. The next time this data is needed, it can then be made available to the logical circuits in the processing unit without having to access the main store, thus enabling an operating cycle to be performed at a faster rate. Obviously, when using this approach with a limited capacity fast-access memory, the data once accessed from the main store will very quickly fill the fast-access memory. Hence, it is contemplated in the present invention that a means is provided to examine the fast-access memory during each operating cycle to determine which of the data stored therein has been dormant for the longest period of time. The newest data accessed from the main store is then used to replace the dormant data and, if necessary, the most dormant data is placed back into the main store.

It is, therefore, an object of the invention to provide improved apparatus for processing data rapidly and more efficiently.

It is another object of the invention to provide apparatus for minimizing the number of times a data processor may be required to access a main store in order to perform a program.

It is another object of this invention to provide a fast acting, small capacity, look-aside memory into which a limited amount of active data, once accessed from the main store, can be retained in the memory for use in subsequent logical operations.

Another object of this invention is the provision of a fast memory means for storing data accessed from the main store and means for quickly determining that said data is stored in the fast memory means such that logical operations can be performed on this data at high speeds.

A further object of this invention is to provide analog means associated with a memory for determining recent usage of the information stored therein.

A still further object of this invention is the provision of a small capacity memory in which the information is retained therein on the basis of a recent usage of this information.

Still anoother object of the present invention is to provide means for displacing information stored in a small capacity memory because of lack of recent usage of this information.

Another object of this invention is to transfer all information to and from a main store through a small capacity, fast access memory.

Another object of this invention is the provision of means for indicating when information that is stored in a memory is altered or unaltered.

Another object of this invention is to reduce the number of accesses to the main store by writing back only the altered information into a main store from a small capacity, fast-access memory.

Another object of this invention is to have a data processor access information exclusively from a small capacity, fast-access memory.

A further object of the present invention is to provide analog means for controlling logical decisions in a digital data processing system.

With these and other objects in view, as will hereinafter more fully appear, and which will be more particularly pointed out in the appended claims, reference is now made to the following description taken in connection with the accompanying drawings in which:

FIG. l is a schematic block diagram of a data processing system showing the improved memory arrangement of the present invention;

FIG. 2 is a schematic block diagram showing the details of the memory control unit shown in FIG. l;

FIG. 2a is a schematic presentation of a portion of the main information store, shown in FIG. l, for illustrating its operation;

FIG. 2b is a schematic diagram of an alternate timing control and a magnetic drum memory providing an alternate embodiment of the main information store, shown in FIG. l;

FIG. 3 is a schematic diagram of a portion of the flipop circuits for the address registers for storing the addresses of words in the memory arrangement of the present invention, to illustrate the transfer of addresses between address registers in typical operations of the memory;

FIG. 4 is a schematic diagram of a portion of the flipop circuits for the information storage registers for storing words in the memory arrangement of this invention to illustrate the transfer of information between information registers in typical operations of the memory;

FIG. 5 is a schematic block diagram of portions of the logical circuitry of the address comparator, the address register for the memory and one of the address storage registers shown in FIG. l, for illustrating the operation of the address comparator;

FIG. 6 is a schematic circuit diagram, partially in block form, of certain ones of the anolog usage indicators shown in FIG. l, to illustrate their operation in providing a substantially continuous indication of one of the registers in the look-aside units containing information having the least recent usage;

FIG. 7 is a schematic block diagram of a portion of the alteration indicators which provide indications of the alteration of data in corresponding information storage registers of the look-aside unit shown in FIG. l;

FIG. 8 is a timing diagram for illustrating typical operations of the memory arrangement of the present invention during typical look-aside operating cycles when a word of information being accessed is stored in one of the information registers of the look-aside unit shown in FIG. l; and

FIG. 9 is a timing diagram for illustrating typical operations of the memory arrangement of the present invention during look-aside and main store operating cycles when the word of information being accessed is not stored in any one of the information storage registers of the look-aside unit shown in FIG. l.

Referring now to the drawings and particularly to FIG. l thereof, an illustrative embodiment of this invention is seen to comprise a data processing system which includes a memory 20, a central processing unit 21, peripheral equipment 23, and a L address register and a M information register which are located between the memory 20 and the central processing unit 21. The memory 20 comprises a main information store 22 in which the information for executing programs is stored, e.g., information comprising the instructions which specify the program to be performed along with the data to be operated upon in the execution of the program. Also included in the memory 2l] are a look-aside unit 24, a memory clock source 27, a memory control unit 28 and an A address register and a B information register. The memory control unit 28 controls the operation of the entire memory 20 and also sends certain signals, indicating the end of look-aside operating cycles, to the central processing unit 21.

As shown and described in the preferred embodiment, the central processing unit 21 (C.P.U.) which comprises a data processor, a program control, and a peripheral control, has access to all the words in the memory 20 through the L and M registers. When the address of a word of data or instruction is placed in the L register and the addressed word is in the look-aside unit 24, a transfer of information between the M register and the look-aside unit 24 is provided in a look-aside operating cycle at a very fast rate. When the address of a word placed in the L register is not in the look-aside unit 24 at the time, and the store 22 is not busy, the address and word are transfered into the look-aside unit for a write operation or, if a read operation, operating cycles in the store 22 are initiated to place this word in the look-aside unit 24 from the store 22.

The look-aside unit 24 comprises an address comparator 25, look-aside registers including information storage registers 10 to 16 and address storage registers 10a to 16a, analog usage indicators 10b to 16b, and alteration indicators 10c to 16C. A single one of the information storage registers 10 to 16 is capable of storing the contents of any cell (word) in the store 22. Each of the address storage registers 10a to 16a is capable of storing the address of any cell in the store 22. The analog usage indicators 10b to 16b provide one indicator for each set of address and information storage registers in the look-aside unit 24 to indicate the recent usage of the words stored therein. The alteration indicators 10c to 16C provide one indicator for each set of address and information registers in the lookaside unit 24 to indicate whether or not the words stored therein have been altered by writing into the information register of the respective set of look-aside registers.

In the preferred embodiment of the invention as shown and described herein, each of the information storage registers 10 to 16 comprises twelve dip-flops for storing a word of information having a word length of twelve binary digits. The word length of the information storage registers 10 to 16, therefore, corresponds to the length of the word stored in any of the cells in the information store 22. Accordingly, the M register and the B register also each comprise twelve fIip-fiops for storing the words during periods of access. The address storage registers 10a to 16a, the L address register, and the A address register each comprise twelve flip-flops for storing addresses of twelve binary digits to provide addresses for any one of the words in the store 22 which has a storage capacity, e.g., of four thousand and ninety-six words.

As shown in FIG. 1, the storage capacity of the lookaside unit 24 of the preferred embodiment of the present invention, is extremely small, eg., seven words, relative to the storage capacity of four thousand and ninety-six words provided in the store 22. This would be expected, since the store 22, which has been illustrated in the prefered embodiment as magnetic core storage, provides the necessary greater storage capacity for the system, for the structure involved, than the look-aside ip-ilop registers. Accordingly, the words stored in the registers of the lookaside unit 24 must be displaced, depending on the current need for the words stored therein, in order to provide fast` access to the words currently being accessed by the processing unit 21.

To the extent of its Word storage capacity, words temorarily stored in the information storage registers to 16 in the look-aside unit 24, therefore, comprise words of information currently being accessed in the execution of the program as requested by the central processing unit 21, e.g., words of instructions and data for a routine or subroutine of the program currently being executed by the data processing system. Access to the words stored in the look-aside unit 24 is provided at logic speed which is much faster than the rate of access to words stored in the main store 22.

In order to keep the words of information stored in the look-aside unit 24, current, or up to date, with the words of instruction or data being accessed from the memory in the execution of the program routines, the recent usage of the words stored in the look-aside unit 24 is constantly being appraised by analog usage indicators 10b to 1Gb. These analog usage indicators 10b to 1611 continuously provide an indication of which one of the look-aside registers 10 to 16 contains the word which has not been accessed for the longest period of time. On this basis of evaluation of need for words in the execution of program routines, the words in the look-aside registers 10 to 16 are automatically kept current with the words being accessed in the execution of the program. More specically, the evalution of need is based upon the premise that words currently being accessed in the execution of a program are, in many instances, accessed again or repeatedly within a very short period of time and, upon a repeated request for a word, it will be stored in one of the look-aside registers 1I) to 16. Therefore, repeated access to particular word or words will tend to cause the word or words to remain in the look-aside unit 24 during the period of time in which repeated accesses are made.

Referring to FIG. l; a general description will now be set forth of typical operations of the memory 20. The first operation to be generally described is a read" operation wherein a word being accessed is stored in the lookaside register 10. This word, or any other single word stored in the look-aside registers 10 to 16, is capable of being read at logic speed in one complete read lookaside operating cycle. The address of the word to be `accessed is placed in the L register and a read-control ip-op T1 (FIG. 2) in the memory control unit 28 is set `by the processing unit 21 to initiate the read operation. A comparison is made, in the address comparator 25, of the address in the L register and the addresses in the look-aside address registers 10a to 16a. Since it has been assumed, for purposes of explanation, that the word being accessed is stored in register 10, the like addresses in the L register and register 10a will produce high outputs Ks, and Ksm from the comparator 25. The high output Ks', is coupled to the memory control unit 28 to provide control signals which are coupled to the M register. The output Ksw is coupled to the register 10 to provide for the selective transfer of the word stored in this register to the M register. These control signals provide for the transfer from the selected one of look-aside registers l0 to 16 into the M register during the following look-aside operating cycle.

The next operation to be generally described is the write operation when the word being accessed is stored in the look-aside unit 24. The word is wrritten" into unit 24 at logic speed" in one complete write look-aside operating cycle. An address and word are placed in the L register and the M register during operati-on of the processing unit 21 and a white-control Hip-Hop T2 (FIG. 2) in the memory control unit 28 is set by the processing unit 21 to initiate the write operation. Assuming the address placed in the L register is the same as the address in the look-aside `register 10a, the comparator 25 will produce outputs Ksl `and Ksm. The memory control unit 28 then will provide control signals which are coupled to the register 10. The high output Ksm is also coupled to register 10. The combination of control signals and high output Ksw, provides for the transfer of the word of information from the M register to the register 10 in a complete iwrite" look-aside operating cycle. In the same cycle, the alteration indicator 10c is set to indicate that the word stored `in register l0 has been altered.

The next operation to be generally described is the read operation when a new word to be accessed is not stored in the look-aside memory unit 24, but is stored in the main information store 22. This operation is initiated in the same manner as the read operation described supra. However, upon comparison in comparator 25, an output Ksl will be produced which is coupled to the memory control unit 28 to produce control signals for accessing the word from the main store 22. The operations for accessing the new word from the store 22 include displacing the least used word which is stored in one of the look-aside registers 10 to 16. This register is designated by one of the analog usage indicators 10b to 1611. Assuming the indicator 10b is set indicating that register 1t) contains the least used word, then, if the alteration indicator 10c is set, this least used word and its address in register 10a will be transferred to the B register and the A register, respectively, in order to be writtenback into the main store 22. Later, during this same lookaside operating cycle, the address of the new word in the L register is transferred to the address register 10a. Still later, during this same look-aside cycle, an operating cycle is initiated in the main store 22 by a control signal from the memory control unit 28. Finally, the read-control Hip-flop T1 (FIG. 2) in the memory control unit 28 is reset to provide for continuing the look-aside operating cycles for accessing other words of information whose addresses are placed in the L register during the time period of operating cycles of the store 22.

The operating cycle of the store 22, which was initiated as stated before, writes the displaced word into the main store 22 from the B register at the address which is stored in the A register. After this rst operating cycle of the main store 22 is completed, the address of the new word in register 10a is transferred to the A register and a second operating cycle of the main store 22 is initiated to read out the new word. At the end of this second operating cycle of the main store 22, the new word will have been read out of the main store 22 and into the B register, and a special look-aside operating cycle is provided to transfer this new word from the B register to the register 10. This completes the read operation when the word being accessed is not stored in the look-aside unit 24. It should be noted in connection with the foregoing, that if the alteration indicator 10c is not set, thereby indicating that the word to be displaced has not been altered, the rst operating cycle of the main store 22 is neither needed nor provided, and only one operating cycle of the main store 22 is provided in order to read out the new word.

The next operation to be described is the write operation when the word being accessed is not stored in the look-aside unit 24. The word being accessed yand its address are placed n the M register and the L register, respectively, and the write-control flip-Hop T2 (FIG. 2) in the memory control unit 28 is set. During the look-aside operating cycle which follows, yan output Ksl is produced by the comparator 25 which indicates that the address of the word is not in the look-aside registers 10a to 16a. Again, it is assumed that the word in the register 10 is to be displaced as indicated by a high output from analog usage indicator 10b. The word in the register 10 and its address in `register 10a: are transferred to the B register and the A register, respectively. Next, the new word in the M register and its address in the L register are transferred to the register 10 and the register 10a, respectively. At the termination of this operation alteration indicator 10c is set. This completes the write operation if the displaced word had not been altered as evidenced by alteration indicator c not initially being set. If the displaced word had been altered, a high potential level output signal Vsl (FIG. 7) provided by alteration `indicator 10c is coupled to the memory control unit 28 to set a writecontrol flip-flop T5 (FIG. 2) to provide control signals for initiating a main operating cycle for writing the displaced word back into the main store 22.

The foregoing description of the operation of the memory assumed that the main store 22 was not busy, i.e., the main store 22 is not in a main store operating cycle, during the look-aside operating cycles. Look-aside cycles (either read or write) in which the word being accessed is stored in the look-aside unit 24 are not affected by the busy condition of the main store 22 and normal operation includes accessing words stored in the look-'aside unit 24 during operating cycles of the store 22. However, whenever the main store 22 is busy and an address is placed in the L register for accessing a word that is not stored in the look-aside unit 24, the control unit 28 will terminate operations in the look-aside cycle, send control signals to the processing unit 2l indicating this condition, and also prepare for accessing another word (whose address will be placed in the L register) in the folowing look-aside operating cycle.

Referring now to FIGS. l to 8, a more detailed description will be given of typical operations of the memory 20 (FIG. l) during a look-aside operating cycle when the word being accessed is stored in one of the lookaside registers such as the look-aside register 10. The processing unit 2l initiates the operation of the memory 20 by placing an address of a word in the L register and setting the read-control flip-op T1 (FIG. 2) in the memory control unit 28 for a read operation, or placing an address in the L register and information in the M register and setting a write-control ip-op T2 (FIG. 2) for a write operation. Upon either a write operation or a read operation being initiated in the foregoing manner, a comparison is made between the address in the L register and all of the addresses in the address storage regi-sters 10a to 16a by the comparator 25 (FIG. 5) to determine if the address word is in one of the look aside registers l0 to 16.

For the purpose of explanation, it has been assumed that the address placed in the L register is the address of a word which has been accessed previously in the execution of a program routine and is now stored in the look-aside storage register 10. A comparison in the comparator of the address stored in the L register and the address stored in the look-aside address register 10a,

therefore, will produce high level logical potentials at outputs Ksl and Ks, (FIGS. 8(d) and 8(f)) of drivers Ksl and Ks10 of the comparator 25, shown in FIG. 5. The high output Ks! indicates like addresses have been compared and the word being accessed is stored in one i of the look-aside registers 10 to 16. The high output Ks, indicates that like addresses are in the L register and the look-aside register 10a and the Word being accessed is stored in the look-aside register 10.

If the read-control flip-flop T1 (FIG. 2) is set for a read" operation, the word stored in the information storage register 10 is transferred to the M register during the next complete look-aside operating cycle. As shown in FIG. 8, the next complete look-aside operating cycle, after flip-Hop T1 is set to produce a high logical potential level at output T1 (FIG. 8(g)), a look-aside operating cycle #2. A control flip-Hop T3 (FIG. 2) is set at the beginning of a look-aside cycle only, and a high output T3 is necessary to produce read or write operations in a look-aside cycle. This is necessary to synchronize the operations of the memory 20 and the central processing unit 21 which are assumed to be operating asynchronously. If the memory 20 and processing unit 21 were operated in synchronism, there would be no need to synchronize the operations.

The logical circuitry for transferring information from the look-aside register 10 to the M register during a look-aside operating cycle for a read operation is shown schematically in FIG. 4. The high level logical potential (0 v.) of the output Ksw (FIG. 8(f)) enables AND -gates 41 in the output circuits of the flip-Hops G1Gl2 of the register 10 to transfer the information from the register 10 to the iM register. The outputs of gates 41 are coupled through OR gates 42 to AND gates 43, which are coupled to the respective inputs of the M register Hip-flops M1-M12 through OR gates 44. The transfer of the word from the look-aside register 10 to the M register is completed by the high logical potential level pulse (FIG. 8(j)) formed by the inputs of AND gate 56 and applied onto AND gates 43. This high logical level potential pulse is produced at the output of the gate 56 by high level potentials from the output Ksl (FIG. 8(d)), the output T1 (FIG. 8(g)), the output T3 (FIG. 8(i)), and the high potential timing pulse P5 (FIG. 8(c), cycle #2). It should be noted that control Hip-flop T3 (FIG. 2) is set near the beginning of lookaside operating cycle #2 by the output of an AND gate 31 (FIG. 2) having inputs consisting of a timing pulse P1 (FIG. 8(c), cycle #2) and the output of OR gate 32 (FIG. 2). In this manner, the addressed word in the look-aside register 10 is transferred to the M register in a read operation during look-aside operating cycle #2 (FIG. 8).

For a write operation in the look-aside unit 24, instead of a read operation as described supra, the writecontrol flip-flop T2 (FIG. 2) is set instead of the readcontrol fiipop T1 and an equal comparison of addresses of the L register and the look-aside address register 10a in the comparator 25 (FIG. 5), produces a transfer of the word of information placed in the M register to the look-aside register 10.

As shown by the logical circuitry in FIG. 4, the transfer of information from the M register to the look-aside register 10 is accomplished during a look-aside operating cycle, e.g., look-aside operating cycle #2 (FIG. 8) by enabling AND gates 45 which couple the outputs of the M register tlipops M1-M12 to the respective inputs of the flip-flops G1-G12 of the look-aside register 10 through OR gates 46. The AND gates 45 are enabled by high potential levels from the output Ksm (FIG. 8(f)) and AND gate 52. The output of gate 52 (FIG. 8(k)) is high (0 v.) during the timing pulse P5 (FIG. 8(c)) when outputs T2 and T3 (FIGS. 8(11) and 8()) are high and the output Ks, (FIG. 8(d)) is high. Thus, the transfer of information from the M register to the look-aside register 10 is completed in the look-aside cycle #2 at the time of timing `pulse P5 (FIG. 8(c), cycle #2). In addition to this transfer of information, the alteration of information in the register 10, as `a result of the write operation, is indicated by setting flip-flop D10 to produce a high output D10 (FIG. 8(n)) in the alteration indicator 10c shown in FIG. 7. An AND gate (FIG. 7) is enabled by the high output Ks, to pass the pulse output of AND gate 71 (FIG. 7) having inputs connected to high outputs T2, T3, and Ksl to pass the pulse P5 (FIG. 8(0), cycle #2).

In order to provide an indication of recent usage of the word stored in register 10, both read and write" operations in the look-aside register 10 produce a charging pulse ep (FIG. 8(1)) by enabling AND gate 156 of the analog usage indicator 10b `shown in FIG. 6. High outputs T3 (FIG. 8(i)) and Ksm (FIG. 8(f)) enable the gate 156 to pass the timing pulse P5, (FIG. 8(0), cycle #2) to produce the charging pulse ep at the output of OR gate 155. The pulse ep turns on transistor to fully charge the capacitor for reasons which will be clear iirom the detailed description of FIG. 6 set forth later in this disclosure. Also, `a "look-aside operation completed pulse XI (FIG. 8(0)) is produced subsequent to each of the described read and write operations by enabling AND gate 33, shown in FIG. 2, by the high output T3, timing pulse P7 (FIG. 8(c), cycle #2) and the high output of R gate 34 that is connected to a high output Ksl (FIG. 8(d)). Resetting of ip-ops T1-T3, at the end of each of the `above described look-aside operating cycles #2, is provided by enabling AND igate 35h (FIG. 2) to pass the timing pulse P7 to OR gate 35a to produce a reset pulse rt (FIG. 8.(p)) rat the reset inputs t1-ots of flipflops T1-T3. Resetting of the ilipops T1-T3 prepares the memory control unit 28 (FIG. l) for the next look-aside operating cycle.

The foregoing completes the detailed description of the operations during complete look-aside operating cycles for reading and writing operations in which the word being accessed is stored in the look-aside register 10a. These operations are typical `and operations involving the other registers 11 to 16 are similar. Before a detailed description of the operations of the memory is presented that involve accessing words which are not stored in any of the look-aside registers 10 to 16, a brief description, that follows, of the memory control unit 28 will provide a better understanding of these operations.

As shown in FIG. 2, the memory control unit 28 cornprises a timing pulse source 30 for timing look-aside cycles, control flip-flops T1-T8 and `associated logical circuitry, and a store timing control 29 for controlling operating cycles of the store 22. The memory timing pulse source 30 comprises a clock delay line 35, e.g., a delay line providing 1000 nanoseconds time delay, which is connected to the output of a memory clock source 27, e.g., a one megacycle frequency clock source. From the clock delay line 35, eight outputs are available from output lines as shown, the first output line having no output connections and the latter seven being connected to respective AND gates 36 to provide equally spaced timing pulses P1 lo P7 (FIGS. 8(6) and 9(c)) for tirning the operations in each of the look-aside operating cycles. The gates 36 are enabled by a high output (0 v.) from OR gate 36a during all look-aside cycles except a look-aside operating cycle to complete a store cycle. Timing pulses Q5 and Q7 (FIG. 8(b)) are produced each and every look-aside cycle and are taken directly from the output lines, as shown, for timing operations of the look-aside operating cycle to complete a store cycle (FIG. 9). The control flip-flops T1-T3 control the operations of the look-aside unit 24 during all look-aside operating cycles except the look-aside operating cycle to complete a store cycle, indicated in FIG. 9. The control flipops T4-T6 control -certain operations of the look-aside unit 24 during operating cycles of the store 22, while Hipops T7 and T8 control certain operations during look- :aside cycle to complete a store cycle which follow each of the read operating cycles of the store 22.

The store timing control 29, as shown in FIG. 2, controls the operations of the store 22 during operating cycles of the store 22. The store timing control 29 comprises a delay line 37 that has output lines, as shown, which are connected to timing flip-flops including timing flip-ops E1 and E2. Flip-flops E1 `and E2 are set and reset by sequential pulses supplied from the delay line output lines as a pulse from OR gate 76 passes through the delay line 37. The true outputs of the tiip-ilops E1 and E2 supply the timing control signals for controlling drivers 64 and inhibit drivers 65 of the store 22, as illustrated in FIG. 2a by the drivers 64 and 65 for one of twelve core planes of the store 22. A control ilip-op T9 (FIG. 2) is set during operating cycles for reading from the store 22 to provide an output T9 which enables AND gate 68 (FIG. 2a) to pass the strobe pulses sp to sense amplifiers (e.g., sense amplifier 66 shown in FIG. 2a) of the store 22 to pass the amplied outputs of the core memory arrays of the store 22 during the operating cycles for reading rorn the store 22 into the B register. The pulse output of an OR gate 77, which sets flip-flop T9 for read operating cycles of the store 22, is also coupled to the reset 10 inputs b1-blz of flip-flops B1-B12 (FIG. 4) to clear the B register before read out from the store 22.

Referring again to FIG. 1 and also to FIGS. 2 to '7 and 9, a detailed description will next be presented of the operation of the memory 20, and more particularly, a detailed description of read" and write operations in the memory 2t) wherein the word to be accessed is not stored in the look-aside registers 10 to 16. It should be noted that whenever a new word is to be accessed that is not stored in the look-aside registers 10 to 16, one of the words in a selected one of the look-aside registers 10 to 16 must be displaced to provide storage space therein for this new word.

Considering a read operation rst, when an address of a new word is placed in the L register for a read" operation and the address is not in the look-aside address registers 10a to 16a, a look-aside operating cycle is followed by at least one operating cycle of the store 22 to read-out the new word from the store 22. In addition, a look-aside operating cycle to complete a store cycle (FIG. 9) is required to place the new word that is read out from the store 22 into the selected one of the look-aside registers 10 to 16. The look-aside operating cy-cle to produce a read operation is initiated in the look-aside unit 24 by setting read-control ip-op T1 as shown in FIG. 2. Since it has been assumed, for purposes of explanation, that the word to be accessed is not in the look-aside registers 10 to 16, e.g., when the addressed word is being accessed for the lirst time, the comparison of the address in the L register and the addresses in the look-aside address registers 10a to 16a in the comparator 25 will produce a high logical `potential level output Ksl (FIG. 9(e)) from the comparator driver Ksl, as shown in FIG. 5. This output Ksl' specifies that the address placed in the L register is not in the look-aside registers and a word in one of the look-aside registers 10 to 16 must be displaced in order to provide storage space therein for the new word being accessed.

On the basis of recent usage of the words in the lookaside registers 10 to 16, described brietly earlier in this disclosure, one of the analog usage indicators 10b to 1Gb (FIG. 6) indicates that its associated look-aside register contains the word which has had the least recent usage, and therefore, is the word to be displaced. For the purpose of explanation, it is assumed that, of all the words stored in the look-aside registers 10 to 16, the word stored in the look-aside register 10 has had the least recent usage; or the word in register l0 is among a group of words in the look-aside registers 10 to 16 having the least recent usage and this word is in the lowest order look-aside storage register containing a word in this group. Thus, the word in register 10 is designated to be displaced, which is indicated by a high output Rm (FIG. 9(1)) of the ip-op R10 in the analog usage indicator 10b (FIG. 6), to provide storage space in the look-aside registers 10 to 16 for the new word to be read-out of the store 22. It should be noted that the high output of the analog usage indicators (e.g., Rw) designates the selected set of address and information look-aside registers (c g., 10 and 10a) for the transfer of address and information into and out of look-aside unit 24.

Before the new word can be read out of the store 22, the word being displaced from register l0 must be written back into the store 22 if it has been altered, e.g., altered by a write operation which has changed the word while the word is stored in look-aside register l0. The alteration indicator 10c, having a flip-flop D10 shown in FIG. 7l indicates whether or not the word in register 10 has been altered. If the word in the selected look-aside register 10 has ben altered, the output D10 (FIG. 9(m)) of flip-ildp D10 is high and the output VS1 (FIG. 9(0)) of driver VS1 (FIG. 7) is high. In the presence of high output Vs, and other inputs to AND gate 53 (FIG. 3), the pulse slib (FIG. 9(p)) is produced at the time of pulse P4 to transfer the word in the selected look-aside register 10 to the B register (FIG. 4) and its address, in the address register 10a, to the A register (FIG. 3) in preparation for a write" operating cycle in the store 22. Also, at the time of pulse P4, read-control flip-flop T4 (FIG. 2) in the memory control unit 28 is set by the output of an AND gate 81 to provide the proper control signals for a read" operation involving an operating cycle of the store 22. At the time of the timing pulse P5 (FIG. 9(c)), which is coupled to AND gate 55 (FIG. 3), a pulse (ms (FIG. 9(q)) is produced. The pulse imi` and high output R19 enables AND gates 48, which are connected to the inputs of ilip-ops F1 to F12 as shown in FIG. 3, to transfer the address in the L register to the look-aside address register a.

Having transferred the displaced word and its address from look-aside registers 10 and 10a to the B register and the A register, respectively, the next timing pulse P6 (FIG. 9(c)) is passed by AND gate 38 (FIG. 2) to produce an output pulse ws (FIG. 9(r)), which is applied to the information store delay line 37 (FIG. 2) and to reset input I9 of flip-flop T9, to initiate a write operating cycle in the store 22. At the time of the next timing pulse P7 (FIG. 9(0)), and during the aforesaid operating cycle of the store 22, the look-aside cycle is completed by: setting fiip-op T6 (FIG. 2) to indicate the store 22 is now busy; resetting Hip-dop T1-T3 to prepare for the next look-aside operating cycle; and, producing a pulse X2 (FIG. 9(u)). The pulse X2, which is produced at the output of AND gate 39 (FIG. 2), is coupled to the processing unit 21 to signal that the look-aside cycle has been completed but the read" operation is incomplete because the addressed word is not in the look-aside registers 10 to 16. The pulse X2 also indicates that the addressed Word is in the process of being accessed from the store 22 and therefore, is not in the M register.

After the write operating cycle in the store 22 has been completed, and the word displaced from register 10 has been written back into the store 22, the pulse ws (FIG. 9(r)) will have passed through the delay line 37 (FIG. 2). The next operation is to read out the new word from the store 22. In preparation therefor, the pulse ws is thereupon applied to an input of AND gate 61 (FIG. 2) which is enabled by high outputs T4 of fliptlop T4 and T9' of flip-flop T9. The output of gate 61, pulse rs1, is applied to gate 59 (FIG. 3) to provide for the transfer of the address from the look-aside address register 10a to the A register (FIG. 3) to prepare for i reading-out of the new word from the store 22 into the B register. Also, the pulse rs1 (FIG. 9(y)) is applied to: the input of the delay line 37 (FIG. 2) to initiate a read operating cycle in the store 22; the input t9, via OR gate 77, to set the ip-op T9; and the reset inputs by-bu of Hip-flops B1-B12 (FIG. 3) to reset all of the flip-ops B1-B12 in a clearing operation at the beginning of the read operating cycle of the store 22. The high output T9 of ip-op T9 enables AND gate 68 to pass a strobe pulse sp to the sense amplifiers, e.g. sense amplier 66 of the store 22, as illustrated in FIG. 2a.

At the end of the read operating cycle of the store 22, the addressed word has been read out of the store 22 into the B register, and also written back into the addressed cell in the store 22. In order to transfer the word stored in the B register to the look-aside register 10, a look-aside operating cycle to complete a store cycle (FIG. 9) is required. It should be noted at this point that the look-aside operating cycles were not interrupted during the operating cycles of the store 22. In order to prevent a "read or write operation in the look-aside unit 24 involving the L and M registers, when transferring the word from the B register to the lookaside register 10, the AND gates 36 of the timing pulse source (FIG. 2) are disabled by low logical potential levels (-10 v.) T4' and T8' at the inputs to OR gate 36a. The pulses P1 to P7 are blocked, therefore, in a look-aside operating cycle to complete a store cycle" as indicated in FIG. 9(c). This special look-aside operating cycle is provided for by setting ip-ops T7 and T8. The pulse rs1, after passing through the delay line 37 is passed by AND gate 62 to produce a pulse st (FIG. 9(1)) which is applied to set input t7 to set ipop T7. The flip-flop T8 (FIG. 2) is set by pulse P7 passed by AND gate 63 which is enabled by the high output T7 (FIG. 9(a')).

The transfer of the word stored in the B register to the look-aside register 10 in the look-aside operating cycle to complete a store cycle is provided for by passing pulse Q5 (FIG. 9(b)) through AND gate 58 (FIG. 4). This gate 58 is enabled by high outputs T4 and T8 (FIGS. 9(v) and 9(b')). AND gates 47 of the selected look-aside register 10 are enabled by the high output of gate 58 and the high output Rm (FIG. 9(1)) to transfer the contents of the B register to the look-aside register 10.

In addition, timing pulse Q4 is passed by AND gate 151 (FIG. 6), enabled by high outputs T4 and T8, and AND gate 154, enabled by the high output R10 to produce a charging pulse ep (FIG. 9(k)) for fully charging capacitor 110 in the analog indicator 10b. The charging of capacitor 110 produces an analog signal output in indicator 10b to indicate recent usage of the word in register 10. Also, timing pulse Q5 is gated by AND gates 72 and 73 enabled by high outputs T4, T8, and R10, respectively, to reset flip-Hop D10 as shown in FIGS. 7 and 9(m).

The next timing pulse Q7 (FIG. 9(b)) completes the look-aside operating cycle to complete a store cycle by resetting control flip-Hops 'T4-T8 (FIG. 2)l AND gate (FIG. 2) is enabled by high outputs T4 and T3 to pass pulse Q7 through OR gate 85 to provide a reset ,pulse (FIG. 9(6)) at the reset inputs t4-ots.

The foregoing description of a read operation in the memory 20 included the situation in which an altered word was displaced from register 10 to provide storage space therein. Because this word was altered, the output D10 of the alteration indicator 10c (FIG. 7) was high to indicate that the write operating cycle in the store 22 is necessary. If this word had not been altered, a write operating cycle in the store 22 would not be necessary since the write operating cycle of the store 22 is necessary only to up-date a word in the store 22. Since there is no need for a write operating cycle when the word being displaced from look-aside register 10 has not been altered, the address of the new word is transerred from register 10a to the A register (FIG, 3) at the time of pulse P6 (FIG. 9(c)) to prepare for a read operating cycle in store 22. AND gate 57 (FIG. 3) having an output pulse sa (FIG. 9(0) provides for the transfer from look-aside register 10a to the A register at the time of pulse P6.

The read operating cycle in the store 22 is initiated under the foregoing conditions as shown in FIG. 2. An AND gate 69 produces an output pulse rs2 which is coupled to the store delay line 37 through OR gate 76 and to the set input t9 of the hip-flop T9 through OR gate 77. The pulse rs2 is coupled to the store delay line 37 to provide for the necessary outputs from the delay line to produce a read" operating cycle of the store 22. At the end of the read operating cycle of the store 22, when the pulse rs2 has passed through the entire delay line 37, the pulse rs2 is coupled to AND gate 62 which has been enabled by high outputs T9 and T4. The remainder of the operations following the read operating cycle in the store 22 including the look-aside operating cycle to complete a store cycle" are the same as described sunra.

The operation of the memory 20 for writing therein, when an address is not stored in the look-aside registers 10a to 16a is the next operation to be described. As in other 1ook-aside cycles for writing, the address of the new word is placed in the L register, the new Word is placed in the M register, and the write-control flip-flop T2 is set. Since this portion of the description assumes the address of the new word is not in the look-aside registers 10a to 16a, the word having the least recent use is displaced. For clarity in explanation, it will be assumed again that look-aside register 10 contains the word having the least recent usage and is to be displaced to provide space for the new world which is to be written into the register 10. Thus, the analog usage indicator 10b will have a high output R10 from flip-liep R10 (FIG. 6). If the word being displaced from register 10 has not been altered, a single look-aside operating cycle is sufficient to store the word and its address in the look-aside registers 10 and 10a, respectively. Since a look-aside operating cycle involving writing has already been described, i.e., when the word being accessed is stored in one of the lookaside registers, such as register 10, the description is not being repeated at this point. The reason for not writing an unaltered word back into the store 22, when being displaced from a look-aside register, is that the word is already stored in the cell of the store 22 at the proper address.

Continuing the description of the operation for writing into the memory 20 when the address of the word is not in the look-aside registers 10a to 16a, it will now be assumed that the Word being displaced from register 10 has been altered. Because the word is altered, the alteration indicator driver VS1 (FIG. 7) will have an output VS1 (FIG. 9(0)). Under these conditions, the word being displaced from register 10 rnust be written-back into the store 22. In order to produce a write operating cycle in the store 22, write-control flip-Hop T (FIG. 2) is set by the high output of AND gate 82 at the time of pulse P4 (FIG. 9) to enable AND gate 38 provided at the input of delay line 37 to pass the timing pulse P6. The other operations involved have been already described and include: transferring the contents of look-aside registers a and 10 to the A and B registers, respectively, at time of pulse P4; transferring the contents of the L and M registers to the look-aside registers 10a and 10, respectively, at the time of pulse P5; and initiating a write operating cycle only in the store 22 at the time of pulse P6.

Since the new word is stored in the look-aside register 10 at the end of the look-aside operating cycle (FIG. 9), a pulse XI (FIG. 9(s)) is produced in the output of gate 33 at the time of pulse P7 (FIG. 9(c)) to indicate a complete look-aside operating cycle. Also, it is noted that the word stored in look-aside register 10 is available for access via the L register in the immediately following look-aside operating cycles even though an operating cycle of the store 22 is in progress. As shown in FIG. 5, the high output of AND gate S0 is passed by OR gate 51 to enable the AND gate 52 upon an equal comparison of the address in the L register and look-aside register 10a in the immediately following look-aside cycles. The other inputs to OR gate 51 would be low because output R10' is low and the output T5 to AND gate 53 is low.

In the foregoing description of the operation of the memory 20, it was assumed that the store 22 was not already involved in one of its own operating cycles at the time a look-aside cycle was initiated. If an output Ksl is produced upon comparison of addresses in the comparator 25 (FIG. 5), the fact that the store 22 is busy is of no consequence and a complete look-aside operating cycle will result. If, however, a high output Ksl is produced upon comparison of addresses in the comparator 25, the high outputs T6 and Ksl' will enable AND gate 67 (FIG. 2) to produce a pulse X3 (FIG. 9(j)) at the time of pulse P4 (FIG. 9(6) The pulse X3 (FIG. 9(j)) is produced on the line 86 connected to the output of gate 67, as shown in FIG. 2. The pulse X3 is coupled to the processing unit 21 (CPU.) to indicate that the operation requested was not completed in that no access was provided to the word at the address placed in the L register. The output of the gate 67 is also coupled to the reset inputs Il to gt3 to reset flip-Hops T1-T3 and thereby terminate the operations in the look-aside operating cycle and prepare for the following look-aside cycle.

Referring to FIG. 3 for a brief description of the memory address registers shown therein, it should be noted that the first and last look-aside address storage registers, namely the F register 10a and the H register 16a have been shown schematically. Also, the A address register, the address register for the main store 22, and the L address register, the address register for memory 20, have been shown. These registers, as shown in FIG. 3, provide an understanding 0f the transfer and storage of addresses in the operation of the memory 20. The outputs R10 and R16 from dip-flops R10 and R16 (FIG. 6) of the analog indicators 10b and 16b, respectively, are shown coupled to AND gates in the inputs and outputs of flip-flops F1-F12 and flip-Hops H1H12 of the look-aside registers 10a and 16a, respectively. These AND gates and similar AND gates are provided for each of the registers 10a to 16a to provide for selectively transferring the contents tof the L register to one of the address registers 10a to 16a and selectively transferring the contents of one of the address registers 10a to 16a to the A register. These transfers of addresses occur in the operation of the memory 20 when a word is being displaced in the lookaside registers 10 to 16 and a new word is being stored therein as set forth in the prior description of the operation of the memory 20, i.e. when the address placed in the L register is not stored in any of the look-aside registers 10 to 16.

FIG. 4 shows the memory information registers having corresponding address registers shown in FIG. 3. The B register, the buffer register for the main store 22, stores the word whose address is in the A register (FIG. 3). The M register, the buffer register for the memory 20, stores the word whose address is in the L register. The look-aside information storage registers 10 and 16 (G and J registers) are provided to store the words whose addresses are stored in the address storage registers 10a and 16a (F and H registers, FIG. 3), respectively. As set forth in the description of the operation of the memory 20, the registers shown in FIG. 4 provide for the transfer of information during look-aside operating cycles and operating cycles of the store 22.

The comparator is shown in FIG, 5 in such detail as is necessary for an understanding of its operation. Thus, the only connections to the comparator 2S that are shown, are those for flipdlops of the look-aside register 10a and L register which are also shown. The outputs of the ilip-ops of the F register 10a and L register are connected as shown to `provide a comparison of addresses stored therein. Similar logical circuitry is provided for each of the other look-aside address registers 11a to 16a (not shown in FIG. 5) whereby a comparison is made of the address in the L register and each of the addresses in the look-aside address registers 10a to 16a. Referring to the logical circuitry of the comparator 25, shown in FIG. 5l upon comparison of like addresses in the L register and the register 10a, each OR gate 57a will have a high logical potential level (0 v.) output which is coupled to AND gate S2. This gate 52 is enabled by a high output (0 v.) from OR gate 51. Gate 51 has inputs from AND gates 50 and 53 and an input R10. The enabling output for gate 52 from OR gate S1 specifies that the word of information in the register 10 is valid information. The absence of this enabling input specifies that the information in the register 10 in invalid and that the addressed word is in the process `of being accessed from the main store 22. The output of gate 52 is coupled to a driver Kel() having a true output Kvm and a false output Ksw; this output of gate 52 is also coupled to OR gate 54. A true output Krm specifies that the address contained in the L register is in the register 10a and the word in the register 10 is valid. OR gate 54 has inputs from other AND gates 52 (not shown) for each of the other look-aside address registers 11a to 16a. Thus, a high output from OR gate 54 specifies that the address of the word to be accessed (the address in the L register) is in one of the look-aside address registers 10a to 16a. The output of the OR gate 54 is coupled to the driver Kal having a true output Ksl and a false output Kw1'. Thus, a true output Ksl specifics that the addressed word to be accessed is in one of the look-aside registers 1t] to 16 and is a valid word; and a false output Ksl' specifies that the addressed word to be accessed is not in any of the look-aside registers 10 to 16.

Referring now to FIG. 6 for a detailed description of the analog usage indicators 10b to 16h, there are shown in detail therein, indicators 10b, 11b, 12b, and 16b which are sufficient to provide an understanding of the operation of the indicators 10b to 16h of the present invention. Considering the indicaor 10b, it is shown to include an analog circuit having a capacitor 110 which stores a voltage that is a function of the usage of the associated look-aside register 10. The capacitor 110 is fully charged whenever the information in look-aside register 10 is accessed for reading or writing and is allowed to discharge slowly through resistor 120 at all other times. Each of the indicators 11b to 16!) includes a capacitor, eg., capacitors 111, 112 and 116, an a resistor, e.g., resistors 121, 122 and 126 which are connected to operate in the same manner in respective analog circuits of indicators 11b, 12b and 16h as Capacitor 110 and resistor 120.

The voltages on the capacitors 110 to 116 are applied to the inputs of a comparison circuit that indicates one and only one of the indicators 10b to 16h whose capacitor has one of the lowest stored charges. This output is used to set the respective one of the Hip-flops R10-R16 so that, if necessary, the memory control unit 28 can operate to displace the information in a designated one of the registers 10 to 16 which has the least recent usage.

The operations of the memory that effect the charging of capacitor 11|] are: read or write operations in the look-aside register 10 (FIG. l). Each one of the foregoing operations produces a charging pulse ep that is applied to the base of transistor to fully charge the capacitor 110. Gates 151 to 156 for indicator 10b, for example, are connected as shown to produce the charging pulse ep when any "read" or write operation is performed in the register 10. When capacitor is not being charged by a pulse ep, it is being slowly discharged by resistor 120.

A comparison circuit is provided for the analog usage indicators 10b to 16h which is common to all of the indicators 10b to 16h and includes transistors 130, 131,

132 and 136, transistors 140, 141, 142 and 146, and Schmitt trigger circuits 160, 161, 162 and 166. These Schmitt trigger circuits change the voltage levels at the collectors of transistors to 136 to digital voltage levels.

The bases of transistors 130, 131, 132 and 136 are connected to capacitors 110, 111, 112 and 116 respectively, as shown. The emitters of these transistors are connected to a common current source consisting of resistor S7 and the +75 volt source. With this circuit configuration, a resulting common emitter voltage is produced which approaches the voltage of one of these capacitors which has the most negative voltage. The most negative voltage on one of these capacitors of indicators 10b to l6b results from the least recent charging by pulse ep and indicates the least recent usage of the respective one of the look-aside registers 10 to 16. The transistor, of transistors 130 to 136, which is connected to the capacitor having the most negative vollage will always conduct. Some of the remaining transisters, of the transistors 130 to 136, will be back biased and will not conduct if the voltage on the respective capacitors is much more positive than the capacitor that has the most negative voltage. If the voltage on some of the capaicitors 110 to 116 is more positive but near the most negative voltage of one of the capacitors, the respective transistors connected thereto will conduct some current but less than the one of the transistor 130 to 136 that has the most negative voltage connected to its base from its respective capacitor. The parameters of this circuit for transistors 130 to 136 are chosen so that if all of the capacitors 110 to 116 have the same voltage, all of these transistors conduct and the voltage drop across each of their collector resistors is large enough to turn on the Schmitt trigger circuits 160 to 166. To summarize, the voltage drop across the collector resistors of only the transistors 130 to 136 whose base voltage is very near the most negative will be suicient to turn on the respective Schmitt trigger circuits connected to them, but if all of the base voltages are very near the same, all the Schmitt trigger circuits will be turned on.

If only one Schmitt trigger circuit is turned on, it is clear that the associated one of the registers 10 to 16 has had the least recent usage; but since a number of Schmitt triggers may be on at the same time only one of registers 10 to 16 must be selected by setting one of the ip-ops R10-R16. If more than one of these registers 10 to 16 have had almost the same usage, very little is to be gained by attempting to choose the particular register from among these, that has the least recent usage. Therefore, the lowest order indicator of indicators 10b to 16b, having a Schmitt trigger turned on, is selected. This is accomplished by the circuit including transistors 140, 141, 142 and 146. This circuit is, what is often referred to as, a resistor-transistor nor logical circuit and provides inter-connections so that one of the transistors to 146, which is not conducting forces the remaining of these transistors of a higher order number to conduct. In order to provide high level logical potentials (O v.) from the selected one of the non-conducting transistors 140 to 146, they are connected to the false outputs a to 16661 respectively, of the Schmitt trigger circuits.

The outputs of transistors 140 to 146 are connected to AND gates to 176 respectively. A high output (O v.) from transistor 140 for example, enables AND gate 170 to pass a high output pulse (0 v.) from AND gate 177 to set input rm of flip-tiop R10. The flip-flop R10 provides a high output R10 which indicates that the word in look-aside register 10 is one of the registers that has had the least recent usage and is the word to be displaced when storage space is needed for another word in the look-aside registers 10 to 16. The tiip-tlop R10 is reset early in a look-aside cycle if the main store is not busy by the high output pulse (0 v.) of AND gate 178 at the time of pulse P2. In this manner, the flip-flops R10-R16 provide a current digital indication of the state of the analog circuits of indicators 10b to 16b.

In FIG. 7, the alteration indicators 10c, llc, 12C and 16a` are shown to illustrate their operation which is typical for all of the alteration indicators 10c to 16C. AND gates 71 and 74 are common to all alteration indicators 10c to 16C. A high output pulse (0 v.) from either gate 71 or 74 specifies that a word is being written" into one of the registers 10 to 16. AND gates 70 or 78a, for example, specify that the word is being written into register 10. A high output pulse from either gate 70 or 71 is coupled to the input dm to set flip-hop D10. A high output D10, for example, indicates that the word in register 10 has been altered and must be written-back into the store 22 when being displaced from the lookaside register 10. The high output D10 is coupled to AND gate 79a having an enabling input R10, for example, from the tlip-tlop R10 of analog usage indicator 10b. The output of AND gate 79a is coupled to OR gate 79 which provides a high input (0 v.) to driver Vsl. A truc output VS1 of the driver Vsl specifies that the word which is displaced from register 10 has been altered and must be written-back into the store 22.

Referring now to FIG. 2b, an alternate timing control circuit 29a and magnetic drum memory for store 22 is shown. This timing control 29a is provided in the memory control unit 28 (FIG. 1) instead of the timing control 29 (FIG. 2) when the store 22 comprises a magnetic drum memory instead of a magnetic core storage as shown in FIGS. 1 and 2a. As is known, conventional magnetic drum memories include a set of read-write heads, (not shown) for reading" and writing words of information on the surface of a drum of a magnetic drum memory, and separate amplifiers (not shown) for amplifying the pulses to respective read-write heads of the set. The outputs of the amplifiers are individually gated for reading or writing operations. The timing control 29a (FIG. 2b) provides a timing control flip-flop T9 having an output T9 for gating the output of these read amplilers for a read operating cycle of the magnetic drum memory and an output T9 for gating the output of the write amplifiers for a write" operating cycle of the magnetic drum memory. The ip-flop T9 is triggered by the outputs of gates 77 or 38 (FIG. 2) to gate the read or the write ampliers, respectively. In addition, a timing control ip-op T10 is triggered by the output of gate 76 (FIG. 2) which is delayed in time by delay 81a to allow time for setting or resetting of ipop T9, in response to the output of gate 77 or gate 38, before setting flip-flop T10. The output T10 enables AND gate 80a to pass the output of a compare unit 80 on output line 79b as shown in FIG. 2(b).

A drum address counter 78 and a compare unit 80 are used in the customary manner, i.e., the counter is stepped by drum pulses reproduced by a read head disposed over a timing track on the drum surface (not shown) so that the contents of the counter 78 is the address of the word passing by the aforementioned read-write heads. When the proper enabling signals are supplied by flip-flop T9, as described above, no read or write operation takes place until the contents of the drum address counter 78 is equal to the contents of the address register A. When the contents of the counter equals the contents of the register, the compare unit 80 produces an equal output pulse which is passed by AND gates 80a to initiate a strobe pulse (sp1) to the read amplifiers for reading the word on the drum at the address stored in the A register and to the write amplifiers for writing in a word at the address stored in the A register. Also, the output of gate 80a is coupled through a time delay 82a to output line 83 to gates `60, `61, and 62 (FIG. 2), and to the reset input orlo to reset Hip-op T10 for the next operating cycle of the magnetic drum memory. The time delay 82a provides a delay in time to provide for reading or writing before resetting ip-op T10.

In the light of the above teachings, Vvarious modifications and variations of the present invention are contemplated and will be apparent to those skilled in the art without departing from the spirit and scope of the present invention.

What is claimed is:

l. An analog circuit arrangement for controlling logical operations of predetermined logical circuit means in a digital data processing system comprising: analog means for producing analog signals in response to a number of logical operations of said system, said analog means including a plurality of individual analog circuits having vinputs for receiving electrical pulses, a plurality of analog signal outputs for said analog 4signals and a plurality of pulse storage circuit means coupled to said inputs and responsive to an electrical pulse applied to any one of said inputs to set the respective pulse storage means to a first state to produce an analog signal indieating recent performance of a respective one of said number of logical operations, each of said pulse storage circuit means including energy decay means for changing the state of said pulse storage means and thereby, the analog `signals at the respective analog signal outputs to indicate relative times of last performances of said number of logical operations; a number of logical circuit means providing for the performance of said number of logical operations; means coupled to said number of logical circuit means for producing said pulses in response to each of said number of logical operations and selectively applying said pulses to said analog circuit inputs; a plurality of digital circuit means including detection means coupled to respective ones of said analog signal outputs, said digital circuit means being responsive to analog signals applied thereto to provide digital signal outputs according to said analog signals; and circuit means coupling said digital circuit outputs to said predetermined logical circuit means for controlling the logical operations thereof in said digital data processing system.

2. The analog to digital circuit arrangement according to claim 1 in which said number of logical operations includes logical operations of said predetermined logical circuit means, and said means for producing said pulses includes means responsive to logical operations of said predetermined logical circuit means to produce pulses which are selectively applied to said analog circuit inputs.

3. An analog circuit arrangement for providing logical decisions for controlling logical operations providing for the selective replacement of stored words of information in a plurality of storage circuits according to the relative recentness of accessing of individual ones of said words in a digital data processing system comprising: means for selectively accessing said plurality of storage circuits; analog means for producing analog signals having relative amplitudes which indicate relative recentness of accessing of information in each of said storage circuits, said analog means including a plurality of individual analog circuits for respective ones of said plurality of storage circuits, said analog circuits having inputs for receiving electrical pulses, a plurality of analog signal outputs for said analog signals and a plurality of storage circuit means coupled to said inputs and responsive to pulses applied to the respective one of said inputs to store the energy of at least one of said pulses and discharge stored energy of said pulse at a desired uniform rate to provide analog signals whose amplitude at the respective outputs is a function of the stored energy state of said storage means and relative recentness of accessing of each of said words stored in said plurality of storage circuits; means for producing said electrical pulses in response to accessing of a stored word in any one of said plurality of storage circuits and selectively applying said pulses to the respective ones of said analog circuits; a plurality of digital circuit means including amplitude detection means coupled to said analog signal outputs, individual ones of said digital circuit means being responsive to analog signals applied thereto which are relative to at least one predetermined signal level to produce digital signals according to the amplitude of said analog signals relative to said signal level; and logical circuit means coupled to said digital circuit means to be responsive to said digital signals for providing said logical decisions for controlling said logical operations in accordance with said digital signals.

4. An analog to digital circuit arrangement for providing logical decisions for controlling corresponding logical operations for operation of a memory in a digital data processing system comprising: control means for producing pulses in response to predetermined memory operations; analog means coupled to said control means [or producing analog signals in response to said pulses produced during said predetermined memory operations, said analog means including a plurality of individual 

